package com.tdam2013.grupo09.parsing;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.ext.DefaultHandler2;
import com.tdam2013.grupo09.entidades.RespuestaServidor;


public class RespuestaHandler extends DefaultHandler2 {

	private RespuestaServidor respuesta;
	private StringBuilder mensajeCData;	

	@Override
	public void startDocument() throws SAXException {
		super.startDocument();
		respuesta = new RespuestaServidor();
	}

	@Override
	public void endElement(String uri, String localName, String qName)
			throws SAXException {
	}

	@Override
	public void characters(char[] ch, int start, int length)
			throws SAXException {
		mensajeCData = new StringBuilder();
		mensajeCData.append(ch, start, length);
	}

	@Override
	public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {
		super.startElement(uri, localName, qName, attributes);

		if (localName.equals("result")) {
			respuesta.setTipo(attributes.getValue("type"));
			respuesta.setId(attributes.getValue("id"));
		}

		if (localName.equals("detail")) {
			respuesta.setCodigo(attributes.getValue("code"));
			respuesta.setDescription(attributes.getValue("description"));
		}

		if (localName.equals("message")) {
			respuesta.setEmisor(attributes.getValue("from"));
			respuesta.setFechaMje(attributes.getValue("timestamp"));
		}
	}

	@Override
	public void startCDATA() throws SAXException {
	}

	@Override
	public void endCDATA() throws SAXException {
		respuesta.setMensaje(mensajeCData.toString());
	}

	public RespuestaServidor getRespuesta() {
		return respuesta;
	}

}
